using System;
using System.Data;
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore.ChangeTracking;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Microsoft.EntityFrameworkCore.ValueGeneration;

namespace Microsoft.EntityFrameworkCore.Dm.Storage.Internal;

public class DmDecimalTypeMapping : DecimalTypeMapping
{
	public DmDecimalTypeMapping([NotNull] string storeType, DbType? dbType = null, int? precision = null, int? scale = null)
		: base(new RelationalTypeMappingParameters(new CoreTypeMappingParameters(typeof(decimal), (ValueConverter)null, (ValueComparer)null, (ValueComparer)null, (ValueComparer)null, (Func<IProperty, IEntityType, ValueGenerator>)null), storeType, (StoreTypePostfix)3, dbType, false, (int?)null, false, precision, scale))
	{
	}//IL_0010: Unknown result type (might be due to invalid IL or missing references)
	//IL_002a: Unknown result type (might be due to invalid IL or missing references)


	protected DmDecimalTypeMapping(RelationalTypeMappingParameters parameters)
		: base(parameters)
	{
	}//IL_0001: Unknown result type (might be due to invalid IL or missing references)


	public override RelationalTypeMapping Clone(string storeType, int? size)
	{
		return new DmDecimalTypeMapping(this.Parameters.WithStoreTypeAndSize(storeType, size, null));
	}

	// Token: 0x060001B2 RID: 434 RVA: 0x00009104 File Offset: 0x00007304
	public override CoreTypeMapping Clone(ValueConverter converter)
	{
		return new DmDecimalTypeMapping(this.Parameters.WithComposedConverter(converter));
	}
}
